package src.itheima01;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

/*
    java.io.InputStream类: 字节输入流的顶层抽象父类  用来读取一个/多个字节的        读进来
    常用方法:
        public void close(): 关闭流释放资源
        public int read(): 读取一个字节的内容
            遇到文件结束标志,返回-1,不用继续读取文件了

        public int read(byte[] bs): 读取一个字节数组
            读取多个字节的内容,把读取到的多个字节存储方法参数字节数组bs中,返回的是读取的字节的数量
            遇到文件结束标志,返回-1,不用继续读取文件了
            参数:
                byte[] bs: 字节数组,用来存储读取到的多个字节的内容的
            返回值类型:
                int:   读取的字节的数量

    java.io.InputStream类: 抽象类 不能创建对象,必须使用子类
    常用子类:
        java.io.FileInputStream类: 文件字节输入流 以字节的方式读取文件的内容的  读进来   源文件
        构造方法:
        FileInputStream(String path)
        FileInputStream(File path)
            参数: String/File类型的文件路径

    步骤:
        1.创建文件字节输入流FileInputStream类的对象fis,绑定源文件
        2.文件字节输入流FileInputStream类的对象fis调用read方法,读取文件中的内容
        3.文件字节输入流FileInputStream类的对象fis调用close方法,关闭流释放资源

 */
public class Demo01InputStream {
    public static void main(String[] args) throws IOException {
        //1.创建文件字节输入流FileInputStream类的对象fis,绑定源文件
        FileInputStream fis = new FileInputStream("day11\\fis1.txt");

        //2.文件字节输入流FileInputStream类的对象fis调用read方法,读取文件中的内容

        //定义int变量,保存每次读取到的一个字节的内容
        int b = 0;

        //从fis关联的文件中,读取一个字节,返回读取到的字节内容,赋值给变量b,
        //最后判断b的值是否等于-1
        while((b = fis.read())!=-1) {
            System.out.println((char)b);
        }

        //3.文件字节输入流FileInputStream类的对象fis调用close方法,关闭流释放资源
        fis.close();
    }
    //原代码
    private static void method() throws IOException {
        //1.创建文件字节输入流FileInputStream类的对象fis,绑定源文件
        FileInputStream fis = new FileInputStream("day11\\fis1.txt");

        //2.文件字节输入流FileInputStream类的对象fis调用read方法,读取文件中的内容

        //定义int变量,保存每次读取到的一个字节的内容
        int b;

        b = fis.read();
        System.out.println(b+"<---->"+(char)b);

        b = fis.read();
        System.out.println(b+"<---->"+(char)b);

        b = fis.read();
        System.out.println(b+"<---->"+(char)b);

        b = fis.read();
        System.out.println(b);

        b = fis.read();
        System.out.println(b);

        b = fis.read();
        System.out.println(b);

        //3.文件字节输入流FileInputStream类的对象fis调用close方法,关闭流释放资源
        fis.close();
    }
}
